// admin/system/model/sys_job.go
package model

import (
	"time"
)

// SysJob 定时任务调度表
type SysJob struct {
	JobID          int64      `json:"job_id" gorm:"column:job_id;primaryKey;comment:任务ID"`
	JobName        string     `json:"job_name" gorm:"column:job_name;size:64;not null;default:'';comment:任务名称"`
	JobGroup       string     `json:"job_group" gorm:"column:job_group;size:64;not null;default:'DEFAULT';comment:任务组名"`
	InvokeTarget   string     `json:"invoke_target" gorm:"column:invoke_target;size:500;not null;comment:调用目标字符串"`
	CronExpression string     `json:"cron_expression" gorm:"column:cron_expression;size:255;default:'';comment:cron执行表达式"`
	MisfirePolicy  string     `json:"misfire_policy" gorm:"column:misfire_policy;size:20;default:'3';comment:计划执行错误策略（1立即执行 2执行一次 3放弃执行）"`
	Concurrent     string     `json:"concurrent" gorm:"column:concurrent;size:1;default:'1';comment:是否并发执行（0允许 1禁止）"`
	Status         string     `json:"status" gorm:"column:status;size:1;default:'0';comment:状态（0正常 1暂停）"`
	CreateBy       string     `json:"create_by" gorm:"column:create_by;size:64;default:'';comment:创建者"`
	CreateTime     *time.Time `json:"create_time,omitempty" gorm:"column:create_time;comment:创建时间"`
	UpdateBy       string     `json:"update_by" gorm:"column:update_by;size:64;default:'';comment:更新者"`
	UpdateTime     *time.Time `json:"update_time,omitempty" gorm:"column:update_time;comment:更新时间"`
	Remark         *string    `json:"remark,omitempty" gorm:"column:remark;size:500;default:'';comment:备注信息"`
}

// TableName 获取表名
func (SysJob) TableName() string {
	return "sys_job"
}
